Jump To:
Technical Q&As
Networking capabilities in Mac OS X include support for the major protocols and services. Developers can gain access to them through sockets and Core Foundation, as well as through the higher-level Carbon and Cocoa APIs.

Networking Resources
A guided introduction and learning path to developing network-capable applications for Mac OS X.   Essential information for developers using Apple's networking environment.   Descriptions of the programming interface elements for networking, organized by framework.
Document Descriptions
On Off
Display

Sort by
Title
Sorted by
Topic
Sort by
Date
Getting a Packet Trace (HTML) ()
QA1176: Lists tools available for looking at the network packets on the wire.
AirPort/802.11 2004-07-13
Getting a Packet Trace (HTML) ()
QA1176: Lists tools available for looking at the network packets on the wire.
AppleScript 2004-07-13
68K Open Transport Code on Power Macintoshes (HTML)
Deprecated - NW48: Explains why running Open Transport 68K code on a PowerPC may not always work.
Carbon 1997-03-14
Aborting a OTConnect in Progress (HTML)
Deprecated - NW29: Describes the proper way to abort OTConnect, and why after calling OTSndDisconnect you may receive "kOTOutStateErr".
Carbon 1996-05-14
Accessing HTTPS Proxy Settings (HTML) ()
QA1234: Describes how to programatically access Secure Web Proxy information.
Carbon 2003-02-19
Allocate and Disk Full Error (HTML) ()
FL12: Discusses a problem with AFP volumes displaying incorrect free space, and returning disk full errors.
Carbon 1999-07-21
Calling CloseOpenTransport When Writing an App (HTML) ()
Deprecated - NW36: Identifies a bug in Open Transport 1.1 which means your application must CloseOpenTransport before quitting.
Carbon 1996-07-03
Changing the TCP Window Size (HTML)
NW47: Describes how to change the TCP window size in Open Transport.
Carbon 1997-03-14
Closing the Connection: OpenTransport (HTML) ()
Deprecated - NW20: Describes an orderly disconnect situation in Open Transport between two nodes.
Carbon 1996-03-04
Determining if a Drive is a Network Volume (HTML) ()
NW09: Shows how to determine if a volume is mounted over the network.
Carbon 1998-06-01
Discovering all advertised Rendezvous service types (HTML)
QA1337: Explains how to discover all Rendezvous service types being advertised on the local network.
Carbon 2004-06-01
Don't forget to cancel your Rendezvous resolve (HTML)
QA1297: Explains why it's important to cancel a Rendezvous resolve operation.
Carbon 2003-10-15
Downloading through a proxy server in Mac OS X (HTML)
QA1296: Explains when downloading through a proxy server will work, and when it will fail.
Carbon 2003-10-29
Error -3168 (kOTStateChangeErr) and Handoff Endpoints (HTML) ()
Deprecated - NW22: Explains why a kOTStateChangeErr -3168 occurs when there is a handoff endpoint involved.
Carbon 1996-04-08
fBroadCastAddr Always Zero (HTML) ()
Deprecated - NW58: Explains why the fBroadcastAddr field may be zero after a call to OTInetGetInterfaceInfo and includes the workaround.
Carbon 1999-03-08
Getting a Packet Trace (HTML) ()
QA1176: Lists tools available for looking at the network packets on the wire.
Carbon 2004-07-13
Getting the User and Computer Name (HTML)
QA1078: Describes how to get the user and computer name on Mac OS X.
Carbon 2001-10-30
Handing Off TCP Connections to a Different Port (HTML) ()
NW25: Explains that a passive TCP connection cannot hand off the connection to a different port address.
Carbon 1996-05-14
How to use URL Access with proxy servers (HTML)
Deprecated - QA1074: Explains how to use URL Access with proxy servers.
Carbon 2001-10-02
Internet Connect Speed (HTML) ()
QA1165: Describes how to get the modem connection speed from the System Configuration framework dynamic store.
Carbon 2003-03-26
Numerous Small Packet Exchanges Resultin Poor TCP Performance (HTML) ()
NW26: Explains why numerous small package exchanges result in poor TCP performance.
Carbon 1998-05-25
Open Transport Error -3208: kEBADFErr (HTML) ()
NW21: Explains why a call to OTSnd may result in a kEBADFErr -3208.
Carbon 1996-03-04
Open Transport Errors -3151/-3160 and Option Management (HTML) ()
NW54: Gives possible causes of errors -3151 and -3160 when making an OptionManagement call to set an endpoint.
Carbon 1998-04-12
Open Transport Libraries (HTML) ()
NW18: Lists the Open Transport libraries and what to link with for PowerPC and 68K.
Carbon 2000-11-03
Open Transport Versions (HTML)
NW64: Lists the current versions of Open Transport and their features.
Carbon 2000-05-08
OTScheduleDeferredTask When Task Running (HTML) ()
NW52: Describes what happens when you use OTScheduleDefferedTask to schedule a task that is running.
Carbon 1997-10-13
OTScheduleSystemTask Cleanup (HTML) ()
Deprecated - NW37: States the proper way to clean up any pending system tasks scheduled with OTScheduleSystemTask.
Carbon 1996-07-03
PPPoE Server for Testing (HTML) ()
QA1252: Describes how to configure Mac OS X as a PPPoE server for testing purposes.
Carbon 2003-04-11
PSetSelfSend in Classic AppleTalk vs. Open Transport AppleTalk (HTML) ()
NW23: Describes the relationship between PSetSelfSend in Classic AppleTalk and Open Transport AppleTalk.
Carbon 1996-05-14
Raw IP and Open Transport 2.5.x (HTML)
Deprecated - NW63: Discusses Open Transport 2.5's change to the behavior of raw IP endpoints with IP_HDRINCL set.
Carbon 1999-10-25
Receiving UDP Broadcasts (HTML) ()
Deprecated - NW53: Explains why UDP endpoints may never receive UDP broadcast messages.
Carbon 1997-11-17
Rendezvous and wake from sleep (HTML)
QA1290: Explains why applications that use Rendezvous should stay registered and continue browsing on sleep.
Carbon 2003-09-18
Rendezvous enforces the service type format in Panther (HTML)
QA1198: Explains why registering a Rendezvous service might fail on Panther.
Carbon 2004-03-23
Rendezvous enforces the TXT record format in Panther (HTML)
QA1306: Explains how mDNSResponder enforces the proper TXT record format in Panther.
Carbon 2004-07-14
The Rendezvous Name is not the Rendezvous name (HTML) ()
QA1228: Explains why you should use the Computer Name when advertising a Rendezvous service.
Carbon 2004-03-05
Rendezvous TXT record rate limiting in Panther (HTML)
QA1293: Explains how mDNSResponder implements TXT record rate limiting in Panther.
Carbon 2003-10-23
Resolves may return an IPv6 address in Panther (HTML)
QA1298: Explains why you get an IP address of 0.0.0.0 when resolving a Rendezvous service.
Carbon 2005-01-10
Server Endpoint 'qlen' Limit (HTML) ()
Deprecated - NW38: Tells how to determine the maximum 'qlen' value which limits the number of supported handoff endpoints.
Carbon 1996-08-21
Setting request headers in URL Access (HTML) ()
Deprecated - QA1073: Explains how to work around a bug in URL Access when setting request headers.
Carbon 2002-09-10
Synchronous TCP OTConnect Client Call Completes Before Server Responds (HTML) ()
Deprecated - NW24: Explains why an OTConnect call will complete before the server responds.
Carbon 1996-05-14
T_DATA_REQ vs M_DATA TPI Message Blocks (HTML) ()
NW42: Explains why OT passes data to a TPI module using M_DATA message blocks instead of M_PROTO+T_DATA_REQ.
Carbon 1996-10-25
TCP Application Acquires Different Port Address After Relaunch (HTML)
Deprecated - NW28: Explains why a server application acquires a different TCP/IP port address after restarting.
Carbon 1996-05-14
TCP Option Sizes (HTML)
Deprecated - NW27: Tells where to get more information on TCP Option sizes and setting TCP Options.
Carbon 1996-05-14
TCP/IP Option Sizes (HTML) ()
NW62: Enumerates the TCP/IP options and their sizes for Open Transport.
Carbon 1999-04-26
Updating the TXT record of a Rendezvous service (HTML)
QA1302: Explains how to update a Rendezvous TXT record while running on either Jaguar or Panther.
Carbon 2004-07-14
URL Access and the Missing Progress Dialog (HTML) ()
Deprecated - QA1140: Explains a known bug in URL Access related to progress dialogs.
Carbon 2002-09-23
URL Access vs. CFNetwork (HTML)
QA1291: Explains when to choose URL Access or CFNetwork when downloading files from within your application.
Carbon 2003-10-29
Allocate and Disk Full Error (HTML) ()
FL12: Discusses a problem with AFP volumes displaying incorrect free space, and returning disk full errors.
Cocoa 1999-07-21
Changing the TCP Window Size (HTML)
NW47: Describes how to change the TCP window size in Open Transport.
Cocoa 1997-03-14
Discovering all advertised Rendezvous service types (HTML)
QA1337: Explains how to discover all Rendezvous service types being advertised on the local network.
Cocoa 2004-06-01
Don't forget to cancel your Rendezvous resolve (HTML)
QA1297: Explains why it's important to cancel a Rendezvous resolve operation.
Cocoa 2003-10-15
Downloading through a proxy server in Mac OS X (HTML)
QA1296: Explains when downloading through a proxy server will work, and when it will fail.
Cocoa 2003-10-29
Getting a Packet Trace (HTML) ()
QA1176: Lists tools available for looking at the network packets on the wire.
Cocoa 2004-07-13
OTScheduleDeferredTask When Task Running (HTML) ()
NW52: Describes what happens when you use OTScheduleDefferedTask to schedule a task that is running.
Cocoa 1997-10-13
PPPoE Server for Testing (HTML) ()
QA1252: Describes how to configure Mac OS X as a PPPoE server for testing purposes.
Cocoa 2003-04-11
Rendezvous and wake from sleep (HTML)
QA1290: Explains why applications that use Rendezvous should stay registered and continue browsing on sleep.
Cocoa 2003-09-18
Rendezvous enforces the service type format in Panther (HTML)
QA1198: Explains why registering a Rendezvous service might fail on Panther.
Cocoa 2004-03-23
Rendezvous enforces the TXT record format in Panther (HTML)
QA1306: Explains how mDNSResponder enforces the proper TXT record format in Panther.
Cocoa 2004-07-14
The Rendezvous Name is not the Rendezvous name (HTML) ()
QA1228: Explains why you should use the Computer Name when advertising a Rendezvous service.
Cocoa 2004-03-05
Rendezvous TXT record rate limiting in Panther (HTML)
QA1293: Explains how mDNSResponder implements TXT record rate limiting in Panther.
Cocoa 2003-10-23
Resolves may return an IPv6 address in Panther (HTML)
QA1298: Explains why you get an IP address of 0.0.0.0 when resolving a Rendezvous service.
Cocoa 2005-01-10
T_DATA_REQ vs M_DATA TPI Message Blocks (HTML) ()
NW42: Explains why OT passes data to a TPI module using M_DATA message blocks instead of M_PROTO+T_DATA_REQ.
Cocoa 1996-10-25
Updating the TXT record of a Rendezvous service (HTML)
QA1302: Explains how to update a Rendezvous TXT record while running on either Jaguar or Panther.
Cocoa 2004-07-14
Discovering all advertised Rendezvous service types (HTML)
QA1337: Explains how to discover all Rendezvous service types being advertised on the local network.
Core Foundation 2004-06-01
Downloading through a proxy server in Mac OS X (HTML)
QA1296: Explains when downloading through a proxy server will work, and when it will fail.
Core Foundation 2003-10-29
Getting a Packet Trace (HTML) ()
QA1176: Lists tools available for looking at the network packets on the wire.
Core Foundation 2004-07-13
Getting the User and Computer Name (HTML)
QA1078: Describes how to get the user and computer name on Mac OS X.
Core Foundation 2001-10-30
Rendezvous enforces the TXT record format in Panther (HTML)
QA1306: Explains how mDNSResponder enforces the proper TXT record format in Panther.
Core Foundation 2004-07-14
Resolves may return an IPv6 address in Panther (HTML)
QA1298: Explains why you get an IP address of 0.0.0.0 when resolving a Rendezvous service.
Core Foundation 2005-01-10
T_DATA_REQ vs M_DATA TPI Message Blocks (HTML) ()
NW42: Explains why OT passes data to a TPI module using M_DATA message blocks instead of M_PROTO+T_DATA_REQ.
Core Foundation 1996-10-25
Updating the TXT record of a Rendezvous service (HTML)
QA1302: Explains how to update a Rendezvous TXT record while running on either Jaguar or Panther.
Core Foundation 2004-07-14
Discovering all advertised Rendezvous service types (HTML)
QA1337: Explains how to discover all Rendezvous service types being advertised on the local network.
Darwin 2004-06-01
Getting a Packet Trace (HTML) ()
QA1176: Lists tools available for looking at the network packets on the wire.
Darwin 2004-07-13
Rendezvous enforces the TXT record format in Panther (HTML)
QA1306: Explains how mDNSResponder enforces the proper TXT record format in Panther.
Darwin 2004-07-14
The state of mDNSResponder (HTML)
QA1339: Explains how to obtain information regarding the internal state of mDNSResponder.
Darwin 2004-02-06
Updating the TXT record of a Rendezvous service (HTML)
QA1302: Explains how to update a Rendezvous TXT record while running on either Jaguar or Panther.
Darwin 2004-07-14
Are the Name Registry device tree nodes unique? (HTML)
Deprecated - HW64: Discusses whether Name Registry nodes copied from the Open Firmware device tree are unique.
Device Drivers 1999-10-11
Changing the TCP Window Size (HTML)
NW47: Describes how to change the TCP window size in Open Transport.
Device Drivers 1997-03-14
The "chosen" node in the device tree (HTML)
HW88: Describes how to find the "chosen" node in the Open firmware device tree.
Device Drivers 2000-09-05
Determining Open Firmware configuration variables (HTML) ()
HW56: Discusses how to determine the Open Firmware variables on a system.
Device Drivers 1999-03-29
Expansion ROM device properties (HTML) ()
HW50: Describes the Open Firmware properties that should be included in a boot device's expansion ROM.
Device Drivers 1999-03-29
Generating an NMI Without a Programmer's Switch (HTML) ()
QA1264: Explains how to generate a non-maskable interrupt (NMI) on CPUs without programmer's switches.
Device Drivers 2004-04-26
Getting a Packet Trace (HTML) ()
QA1176: Lists tools available for looking at the network packets on the wire.
Device Drivers 2004-07-13
Getting started with Forth (HTML) ()
HW53: Describes where FCode driver developers can get information about the Forth programming language.
Device Drivers 1999-03-29
Installing an I/O Kit KEXT Without Rebooting (HTML)
QA1319: Describes the state of the art of installing I/O Kit kernel extensions (KEXTs) without requiring a restart.
Device Drivers 2003-10-28
IODeviceTree & the IORegistry (HTML) ()
QA1120: Describes the IODeviceTree plane in the Mac OS X IORegistry.
Device Drivers 2002-02-13
IOKit Framework Headers (HTML) ()
QA1107: Describes the differences between the headers in IOKit.framework and the I/O Kit headers in Kernel.framework.
Device Drivers 2002-01-15
Is the Open Firmware device tree object oriented? (HTML)
HW80: Discusses the object-oriented attributes of the Open Firmware device tree.
Device Drivers 1999-11-15
OTScheduleDeferredTask When Task Running (HTML) ()
NW52: Describes what happens when you use OTScheduleDefferedTask to schedule a task that is running.
Device Drivers 1997-10-13
Power Management; Policy Maker vs. Power Controller (HTML) ()
QA1121: Describes the differences between a Power Management Policy Maker and a Power Management Power Controller.
Device Drivers 2002-02-13
T_DATA_REQ vs M_DATA TPI Message Blocks (HTML) ()
NW42: Explains why OT passes data to a TPI module using M_DATA message blocks instead of M_PROTO+T_DATA_REQ.
Device Drivers 1996-10-25
TCP/IP Option Sizes (HTML) ()
NW62: Enumerates the TCP/IP options and their sizes for Open Transport.
Device Drivers 1999-04-26
When to use PCMCIA, PC Card, and CardBus (HTML)
HW77: Explains the differences between PCMCIA, PC Card, and CardBus.
Device Drivers 1999-11-15
The "chosen" node in the device tree (HTML)
HW88: Describes how to find the "chosen" node in the Open firmware device tree.
Hardware 2000-09-05
Determining Open Firmware configuration variables (HTML) ()
HW56: Discusses how to determine the Open Firmware variables on a system.
Hardware 1999-03-29
Difference between using Restart or Shut Down in the Finder's Special menu in Open Firmware (HTML) ()
HW47: Explains the differences between using Restart or Shut Down on Open Firmware
Hardware 1999-02-15
Discovering all advertised Rendezvous service types (HTML)
QA1337: Explains how to discover all Rendezvous service types being advertised on the local network.
Hardware 2004-06-01
Expansion ROM device properties (HTML) ()
HW50: Describes the Open Firmware properties that should be included in a boot device's expansion ROM.
Hardware 1999-03-29
Getting a Packet Trace (HTML) ()
QA1176: Lists tools available for looking at the network packets on the wire.
Hardware 2004-07-13
Getting started with Forth (HTML) ()
HW53: Describes where FCode driver developers can get information about the Forth programming language.
Hardware 1999-03-29